package ejemplo.util;

import java.awt.Rectangle;
/**
 * Clase que representa un "Axis Aligned Bounding Box"
 * @author Miguel Vicente
 */
public class AABB implements IForma {
	
	private Rectangle BB;
	/**
	 * Constructor. Crea un nuevo AABB.
	 * @param x Esquina superior izquierda de la caja (componente x)
	 * @param y Esquina superior izquierda de la caja (componente y)
	 * @param ancho Ancho de la caja
	 * @param alto Alto de la caja
	 */
	public AABB(int x,int y, int ancho, int alto) {
		this.BB = new Rectangle(x, y, ancho, alto);
	}
	/**
	 * Constructor. Crea un nuevo AABB.
	 * @param r Rectangle
	 */
	public AABB(Rectangle r) {
		this.BB = r;
	}
	/**
	 * Devuelve un Vector2D que representa el centro de la caja.
	 * @return Vector2D
	 */
	public Vector2D getCentro() {
		return new Vector2D((int)BB.getCenterX(), (int)BB.getCenterY());		
	}
	/**
	 * Devuelve la mitad del ancho de la caja.
	 * @return double
	 */
	public double getMitadAncho() {
		return BB.getWidth() / 2;
	}
	/**
	 * Devuelve la mitad del alto de la caja.
	 * @return double
	 */
	public double getMitadAlto() {
		return BB.getHeight() / 2;
	}
	
	@Override
	public int getTipoForma() {
		return IForma.RECTANGULAR;
	}
	
	@Override
	public Rectangle getBounds() {
		return BB;
	}
	
	/**
	 * Asigna un Rectangle.
	 * @param bB java.awt.Rectangle
	 */
	public void setBB(Rectangle bB) {
		BB = bB;
	}
	
}
